package com.um.jdy.rpc.entity;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 推送充电状态 请求参数
 * 接口描述：/notification_equip_charge_status，小桔侧实现，运营商侧调用。用于推送充电设备的充电状态。
 */
@Data
public class CecEquipChargeStatus implements Serializable {

    /**
     * 充电订单号 格式:运营商ID+唯一编号 27字符
     */
    @JSONField(name = "StartChargeSeq")
    String startChargeSeq;

    /**
     * 充电订单状态 1:启动中；2:充电中;3:停止中；4:已结束；5:未知
     */
    @JSONField(name = "StartChargeSeqStat")
    Integer startChargeSeqStat;

    /**
     * 充电设备接口编码
     */
    @JSONField(name = "ConnectorID")
    String connectorID;

    /**
     * 充电设备接口状态 1：空闲2：占用（未充电）3：占用（充电中）4：占用（预约锁定）255：故障
     */
    @JSONField(name = "ConnectorStatus")
    Integer connectorStatus;

    /**
     * A相电流 单位：A默认0，含直流（输出）
     */
    @JSONField(name = "CurrentA")
    double currentA;

    /**
     * （非必填）B相电流 单位：A默认0
     */
    @JSONField(name = "CurrentB")
    double currentB;

    /**
     * （非必填）C相电流 单位：A默认0
     */
    @JSONField(name = "CurrentC")
    double currentC;

    /**
     * A相电压 单位：V默认0，含直流（输出）
     */
    @JSONField(name = "VoltageA")
    double voltageA;

    /**
     * （非必填）B相电压 单位：V默认0
     */
    @JSONField(name = "VoltageB")
    double voltageB;

    /**
     * （非必填）C相电压 单位：V默认0
     */
    @JSONField(name = "VoltageC")
    double voltageC;

    /**
     * 电池剩余电量 默认：0
     */
    @JSONField(name = "Soc")
    double soc;

    /**
     * 开始充电时间 格式:yyyy-MM—dd HH:mm:ss
     */
    @JSONField(name = "StartTime")
    String startTime;

    /**
     * 本次采样时间 格式:yyyy-MM—dd HH:mm:ss
     */
    @JSONField(name = "EndTime")
    String endTime;

    /**
     * 累计充电量 单位：度，小数点后2位
     */
    @JSONField(name = "TotalPower", format ="0.00")
    double totalPower;

    /**
     * （非必填）累计电费 单位：元，小数点后2位
     */
    @JSONField(name = "ElecMoney", format ="0.00")
    double elecMoney;

    /**
     * （非必填）累计服务费 单位：元，小数点后2位
     */
    @JSONField(name = "ServiceMoney", format ="0.00")
    double serviceMoney;

    /**
     * （非必填）累计总金额 单位：元，小数点后2位
     */
    @JSONField(name = "TotalMoney", format ="0.00")
    double totalMoney;

    /**
     * （非必填）时段数N 范围：0~32
     */
    @JSONField(name = "SumPeriod")
    Integer sumPeriod;

    /**
     * （非必填）充电明细信息
     */
    @JSONField(name = "ChargeDetails")
    List<CecChargeDetails> chargeDetails;

}
